package com.whfc.wxmp.api.mach.v1.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.common.result.PageVO;
import com.whfc.mach.dto.*;
import com.whfc.mach.param.MachPageDataQueryParam;
import com.whfc.mach.param.MachQueryParam;

import java.util.Date;

/**
 * @author sun_guodong
 * @description 小程序设备数据接口
 * @date 2020-11-17
 */
public interface WxmpMachDataService {
    /**
     * 获取设备地图页列表
     *
     * @param param
     * @return
     */
    MapMachDTO mapList(MachQueryParam param);

    /**
     * 获取设备列表(分页)
     *
     * @param param
     * @return
     */
    PageData<AppMachDTO> list(MachPageDataQueryParam param);

    /**
     * 获取设备列表(不分页)
     *
     * @param param
     * @return
     */
    ListData<AppMachDTO> list(MachQueryParam param);

    /**
     * 统计设备数量
     *
     * @param param
     * @return
     */
    MachDataStatDTO machNumstatic(MachQueryParam param);

    /**
     * 查询设备每日工时
     *
     * @param machId
     * @param date
     * @return
     */
    AppMachWorkHourDayDTO getMachWorkHourDayData(Integer machId, Date date);

    /**
     * 查询单机雷达图
     *
     * @param machId
     * @param date
     * @return
     */
    MachRadarMapDTO getSingleRardarMap(Integer machId, Date date);

    /**
     * 查询单机7天运行数据
     *
     * @param machId
     * @param date
     * @return
     */
    ListData<MachCurveMapDayDTO> getMachWeekData(Integer machId, Date date);

    /**
     * 获取设备当前油耗
     *
     * @param machId
     * @return
     */
    Oil getRemainOil(Integer machId);

    /**
     * 获取设备运动轨迹
     *
     * @param machId
     * @param date
     * @return
     */
    AppMachGpsDTO gpsLog(Integer machId, Date date);

    /**
     * 获取设备当前位置
     *
     * @param machId
     * @return
     */
    Gps gpsLatest(Integer machId);

    /**
     * 查询集群雷达图
     *
     * @param deptId
     * @return
     */
    MachRadarMapDTO getMultiRardarMap(Integer deptId);

    /**
     * 查询集群曲线图
     *
     * @param deptId
     * @return
     */
    MachCurveMapDTO getMultiCurveMap(Integer deptId);

    /**
     * 查询设备一天的油量数据
     *
     * @param machId
     * @param date
     * @return
     */
    MachRunDataDTO getDayOilData(Integer machId, Date date);


    /**
     * 获取设备运动轨迹分页
     *
     * @param machId
     * @param date
     * @return
     */
    PageData<AppMachDataLogDTO> gpsLogPage(Integer machId, Date date, Integer pageNum, Integer pageSize);
}
